Encryption techniques typically provide for a “session key” for encrypting data sent across a communications link. The session key may be generated on one side of the link or the other. The session key is often exchanged from one side to the other such that both sides have the same key to use for encryption. The session key may be a symmetric key where the same key is used by both sides (sender and receiver) to send and receive data. Exemplary symmetric encryption techniques include Advanced Encryption Standard (AES), Data Encryption Standard (DES), and Triple Data Encryption Standard (3DES). The session key may also be an asymmetric key, such as in a public/private key pair where the private key is used to encrypt and the public key is used to decrypt information (or vice-versa). In either case, the session key is utilized throughout the session for encrypting each packet of data with the same key (symmetric, public or private).
In general, prior art encryption techniques are vulnerable to various attacks. Utilization of a constant key for encryption can leave the encryption process vulnerable to a “Dictionary Attack” where large numbers of packets can be analyzed to deduce the session key. In addition, prior art encryption techniques are often vulnerable to “Replay Attacks.” Replay Attacks succeed by recording transmission for replay later. Even though the attacker might not be able to decrypt a packet, the attacker will replay the packets later to spoof legitimate transmissions.